This invention relates generally to video display systems and is particularly directed to a scrolling and paging system in a raster-scanned video display terminal.
The most common type of video display terminal makes use of a raster-scanned display device such as a cathode ray tube (CRT) wherein an electron beam scans horizontally across the faceplate of the CRT on a line-by-line basis, progressing sequentially from the top of the faceplate to the bottom thereof. The electron beam is rapidly turned on and off which illuminates individual pixels, or dots, on the CRT's faceplate. Each alphanumeric character displayed is typically comprised of a generally rectangular matrix of pixels, e.g., 8 pixels high and 10 pixels across, which is sequentially scanned line-by-line from top to bottom by the electron beam. With the electron beam scanning across the CRT very rapidly, i.e., at a line frequency of 15,750 Hz, the resultant effect is a continuous, stable video display.
The video display terminal includes a video memory typically in the form of a random access memory (RAM) in which is stored display information. The video memory is typically sectioned into one or more "pages", each of which contains enough stored information to fill the CRT's faceplate. A single page of the video memory may include as many as 2,000 characters at any given time which represents the upper limit of the number of characters which can be displayed at one time on the CRT. Sometimes it is desirable to display more than the contents of a single page of the video memory and this has given rise to various arrangements for increasing the amount of information which can be presented on the video display terminal.
One approach, termed "scrolling", involves moving data on the video display upward or downward one line at a time, thus freeing a line of the display to provide more information. For example, in an upward scroll the top line of characters in the display is sequentially removed or erased, the remaining lines are moved up one line, and a new line of characters is inserted at the bottom of the display.
In contrast to this rolling of information off the CRT's screen as new information is presented, another approach, termed "paging", involves writing information to the video display until it is full. When the video display user is ready for more information, a signal is sent to the system controller, or central processing unit (CPU), typically by means of a user input device such as a keyboard. When this input signal is received, another page of information is read from the video memory and provided to the video display resulting in a complete "repainting" of the information on the video display.
In video display terminals having a paging capability, it is quite common to have multiple "pages" of video memory, each of which may contain enough information to completely fill the video display. Thus, memory capacity exceeds the display capacity of the display device. Those portions of the video memory not currently being displayed may contain additional information. For example, separate pages of stored information may be provided in the video memory for recall by the system user. Thus, the user may call up for display the contents of one or more pages of information in the video memory. An address latch is typically provided in such systems and is coupled between the video memory and a CRT controller to point to a selected area, or page, of memory. This address latch is used to select which portion of the video display memory will be displayed. Thus, whichever address the CRT controller provides to the address latch determines what portion of the display memory is displayed at the top of the CRT. In paging, the contents of the address latch are modified to point to the first line of a page stored in the video memory which the user wants to display.
On the other hand, in scrolling the address latch is not made to point to the next page, but rather is sequentially modified to point to the next line of the page in the video memory currently being displayed. Because the video display terminal's control logic always shows a fixed number of characters beginning at the address placed in the address latch, the entire display appears to be displaced upward line-by-line with a new line of information appearing at the bottom of the page in scrolling. If separate pages are immediately adjacent to one another in terms of memory locations utilized in the video memory, it is apparent that line-by-line scrolling will result in an overlapping of immediately adjacent memory pages. New information written at the bottom of the video display will overwrite information contained in the second area, or page, of the video memory. This is unacceptable where it is desired to maintain the integrity of individual pages for the purpose of displaying separate and distinct collections of information on the video display. It is for this reason that most raster-scanned video display terminals are incapable of supporting both scrolling and multiple pages.
The present invention is intended to overcome the aforementioned limitations of the prior art by providing a video display terminal capable of both paging and scrolling information presented thereon. Scrolling is accomplished by the sequential incrementing of the line addresses in the video memory with display access limited only to memory addresses within a given page in the video memory. This prevents overwriting of information in adjacent pages and maintains memory page integrity for paging operations when desired.